package org.x.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.x.user.entity.SysTokens;
import java.util.List;
import org.x.user.entity.SysUserRoles;
import org.x.user.entity.SysUsers;
import org.apache.ibatis.annotations.Select;
import org.x.user.entity.SysUserDept;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

/**
 * UserMapper
 *
 * @author 夏包包
 * @date 2025-03-08 13:39:03
 */
public interface SysUsersMapper extends BaseMapper<SysUsers> {

    /**
     * 查询用户部门关系列表
     *
     * @Param wrapper 查询条件
     * @Return 用户部门关系列表
     */
    @Select("SELECT id, user_id, dept_id, create_by, create_time, update_by, update_time FROM sys_user_dept ${ew.customSqlSegment}")
    List<SysUserDept> selectUserDeptList(@Param("ew") QueryWrapper<SysUserDept> wrapper);

    /**
     * 查询用户角色分配列表
     *
     * @Param wrapper 查询条件
     * @Return 用户角色分配列表
     */
    @Select("SELECT id, user_id, role_id, create_by, create_time, update_by, update_time FROM sys_user_roles ${ew.customSqlSegment}")
    List<SysUserRoles> selectUserRoleList(@Param("ew") QueryWrapper<SysUserRoles> wrapper);

    /**
     * 查询用户令牌信息列表
     *
     * @Param wrapper 查询条件
     * @Return 用户令牌信息列表
     */
    @Select("SELECT id, user_id, token, expire_time, create_by, create_time, update_by, update_time, device_id, revoked, last_used_at FROM sys_tokens ${ew.customSqlSegment}")
    List<SysTokens> selectUserTokenList(@Param("ew") QueryWrapper<SysTokens> wrapper);
}
